package com.wrial.mall.product;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * 1.整合Mybatis-plus
 * 2.配置
 *   2.1 数据源 驱动
 *   2.2 Mybatis-plus信息  mapperscan   告诉mybatis xml映射文件（yml）
 * 3.单元测试
 *
 * 使用Mybatis-plus完成逻辑删除
 * 1. 在yml配置全局逻辑删除（可省略）
 * 2. 配置逻辑删除的Bean（可省略）
 * 3. 给某个字段加上逻辑删除注解@TableLogic
 *
 *
 * 整合Redisson：
 * 1.引入依赖
 * 2.配置Redisson
 *
 * 整合SpringCache
 * 1.引入依赖 spring-boot-starter-cache spring-boot-starter-data-redis
 * 2.编写配置
 * 2.1.自动配置 CacheAutoConfiguration会导入RedisCacheConfiguration：配好了CacheManager
 * 2.2.需要自己配置使用Redis作为缓存
 * 3.使用  开启缓存@EnableCaching
 * @Cacheable: 数据保存到缓存
 * @CacheEvict: 删除缓存，删除模式可以使用CacheEvict
 * @CachePut: 不影响方法执行的更新缓存，双写模式可以使用CachePut
 * @Caching: 组合以多个操作
 * @CacheConfig: 在类级别共享缓存的相同配置
 *
 *
 *
 */
@EnableFeignClients(basePackages = "com.wrial.mall.product.feign")
@MapperScan("com.wrial.mall.product.dao")
@EnableDiscoveryClient
@SpringBootApplication
public class MallProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(MallProductApplication.class, args);
    }

}
